Title Banner

Previous Book Contents Book Index Next

Inside Macintosh: OpenDoc Programmer's Guide / Part 1 - Basics
Chapter 1 - Introduction to OpenDoc


Why OpenDoc?

Customer demand for increasingly sophisticated and integrated software solutions has led to large and sometimes unwieldy application packages, feature-laden but difficult to maintain and modify. Developing, maintaining, and upgrading these large, cumbersome applications can require a vast organization; the programs are difficult to create, they are expensive to maintain, and they can take years to revise.

Upgrading or fixing bugs in one component of such an application requires the developer to release--and the customer to buy--a completely new version of the entire package. Some developers have added extension mechanisms to their packages to allow addition or replacement of certain components, but the extensions are proprietary, incompatible with other applications, and applicable only to certain parts of the package.

Because of the barriers put up by the current application architecture, users are often frustrated in attempting to perform common tasks.

OpenDoc addresses these issues by defining a new kind of application, one with advantages to both users and developers in the increasingly competitive software markets of today and the future. OpenDoc replaces the architecture of monolithic conventional applications, in which a single software package is responsible for all of its documents' contents, with one of components, in which each software module edits its own content, no matter what document that content may be in. See Figure 1-1.

Figure 1-1 Monolithic application versus components






OpenDoc allows developers, large or small, to take a modular approach to development and maintenance. Its component-software architecture makes the design, development, testing, and marketing of integrated software packages far easier and more reliable. Developers can make incremental improvements to products without a complete revision cycle and can get those improvements to users far more rapidly than is possible today.

For programmers, this is a radical shift in approach, although its implementation is not difficult. For users, this is only a minor shift in working style; its main effect is to remove the barriers to constructing and using complex documents imposed by conventional monolithic application architecture. It gives them what they are used to, plus more.

OpenDoc components allow users to assemble custom compound documents out of diverse types of data. They also support cross-platform sharing of information. They resolve user frustrations with conventional applications by removing the barriers listed earlier.

Some developers bundle components together into packages that are similar to conventional monolithic applications; others sell individual components for specialized purposes, to users or to other developers for bundling. Users can purchase packages and use them as is, or they can modify a package by adding or replacing individual components.

While providing these advantages, OpenDoc exists harmoniously with existing monolithic applications; the user need not abandon conventional applications in order to start using OpenDoc. Furthermore, it is relatively easy for a developer, as a first step toward adopting OpenDoc, to modify a conventional application so that it works with OpenDoc components.

Table 1-1 summarizes some of the principal advantages of the OpenDoc approach to software, for both users and developers.
Table 1-1 OpenDoc advantages
 For usersFor software engineeringFor software marketingFor small development teams
Modularity Can easily add or replace document parts Can easily test and upgrade components; can reuse componentsCan assemble packages with great flexibilityCan create components that work seamlessly with all others
Small size Less memory and disk space neededEasier to design, code, debug, and testEasier, cheaper distributionFaster development, easier distribution of a component
Multiple platformsDocuments may travel across platforms; users select familiar editors on eachDevelopment effort on one platform can be leveraged to othersOpportunities
for increased market share
Application of limited resources can be used across different platforms
Scriptability/extensibilityGreater control over behavior of document partsIncreased ability for communication among partsBetter coordination among components in a packageIncreased ability to communicate with other components


Previous Book Contents Book Index Next

© Apple Computer, Inc.
16 JUL 1996




Navigation graphic, see text links

Main | Page One | What's New | Apple Computer, Inc. | Find It | Contact Us | Help